package com.example.CarManagement.sys.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 车辆信息表
 * </p>
 *
 * @author 徐佳彪
 * @since 2025-07-08
 */
@TableName("c_car_info")
public class CarInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private String id;

    /**
     * 车牌号
     */
    private String plateNumber;

    /**
     * 车辆品牌/车型
     */
    private String model;

    /**
     * 车辆类型（如轿车、SUV）
     */
    private String vehicleType;

    /**
     * 座位数
     */
    private Integer seatCount;

    /**
     * 车身颜色
     */
    private String color;

    /**
     * 购置日期
     */
    private LocalDate purchaseDate;

    /**
     * 保险到期日
     */
    private LocalDate insuranceExpiry;

    /**
     * 年检到期日
     */
    private LocalDate annualCheckExpiry;

    /**
     * 燃油类型（汽油/柴油/新能源）
     */
    private String fuelType;

    /**
     * 当前里程（公里）
     */
    private BigDecimal mileage;

    /**
     * 当前分配的司机ID
     */
    private String assignedDriverId;

    /**
     * 车辆所在位置
     */
    private String location;

    /**
     * 车辆行驶证或车票照片路径
     */
    private String licenseImgUrl;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人ID
     */
    private String createBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新人ID
     */
    private String updateBy;

    /**
     * 是否删除（0:未删除，1:已删除）
     */
    private Boolean deleted;

    /**
     * 是否删除（0:启用，1:未启用）
     */
    private Integer status;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

    public void setPlateNumber(String plateNumber) {
        this.plateNumber = plateNumber;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(String vehicleType) {
        this.vehicleType = vehicleType;
    }

    public Integer getSeatCount() {
        return seatCount;
    }

    public void setSeatCount(Integer seatCount) {
        this.seatCount = seatCount;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public LocalDate getPurchaseDate() {
        return purchaseDate;
    }

    public void setPurchaseDate(LocalDate purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    public LocalDate getInsuranceExpiry() {
        return insuranceExpiry;
    }

    public void setInsuranceExpiry(LocalDate insuranceExpiry) {
        this.insuranceExpiry = insuranceExpiry;
    }

    public LocalDate getAnnualCheckExpiry() {
        return annualCheckExpiry;
    }

    public void setAnnualCheckExpiry(LocalDate annualCheckExpiry) {
        this.annualCheckExpiry = annualCheckExpiry;
    }

    public String getFuelType() {
        return fuelType;
    }

    public void setFuelType(String fuelType) {
        this.fuelType = fuelType;
    }

    public BigDecimal getMileage() {
        return mileage;
    }

    public void setMileage(BigDecimal mileage) {
        this.mileage = mileage;
    }

    public String getAssignedDriverId() {
        return assignedDriverId;
    }

    public void setAssignedDriverId(String assignedDriverId) {
        this.assignedDriverId = assignedDriverId;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getLicenseImgUrl() {
        return licenseImgUrl;
    }

    public void setLicenseImgUrl(String licenseImgUrl) {
        this.licenseImgUrl = licenseImgUrl;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Boolean getDeleted() {
        return deleted;
    }

    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "CharInfo{" +
            "id = " + id +
            ", plateNumber = " + plateNumber +
            ", model = " + model +
            ", vehicleType = " + vehicleType +
            ", seatCount = " + seatCount +
            ", color = " + color +
            ", purchaseDate = " + purchaseDate +
            ", insuranceExpiry = " + insuranceExpiry +
            ", annualCheckExpiry = " + annualCheckExpiry +
            ", fuelType = " + fuelType +
            ", mileage = " + mileage +
            ", assignedDriverId = " + assignedDriverId +
            ", location = " + location +
            ", licenseImgUrl = " + licenseImgUrl +
            ", remarks = " + remarks +
            ", createTime = " + createTime +
            ", createBy = " + createBy +
            ", updateTime = " + updateTime +
            ", updateBy = " + updateBy +
            ", deleted = " + deleted +
            ", status = " + status +
        "}";
    }
}
